feno.sementes<-function(x,rmNA=TRUE) 
{
##Coloquei um aviso inicial para que as pessoas que utilizarem a funo tenham o cuidado de importar o data.frame de forma que este se adeque a funo:
warning("Para que a funo rode de forma correta o data.frame deve ter quatro colunas.\nA primeira so os meses do ano. \nA segunda so os anos de estudo. \nA terceira so as parcelas. \nA quarta  quantidade de sementes que  a varivel resposta.\n", call.=FALSE,immediate.=TRUE)
##Comandos para que os dados faltantes sejam excludos da anlise e isso seja explicitado no Console:	
if(rmNA==TRUE)
		{
		dados=(na.omit(x))
		dim <- dim(x)-dim(dados)
            n.NA <- dim[1]
		cat("Valores NA excludos\n",n.NA,"\n","\n")
		}
		else
		{
		dados=x
            warning("Se o seu data.frame tiver valores faltantes, a funo no ir rodar. O argumento rmNA deve ser verdadeiro\n", call.=FALSE,immediate.=TRUE)
		}
##Ordenei os nveis do fator ms:
dados[,1] <- factor(dados[,1],levels=c("jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"))
##Transformei as variveis ano e parcela em fatores:
dados[,2] <- factor(dados[,2])
dados[,3] <- factor(dados[,3])
##Criei este objeto apenas para ajudar na hora de plotar o grfico circular: 
meses <- c("jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez")
##Alguns clculos brutos:
##Clculo do total de sementes que chegaram ao longo do estudo:
soma.total <- sum(dados[,4])
##Clculo de quantas sementes chegaram em cada ms:
soma.mes <- tapply(dados[,4],dados[,1],sum)
##Clculo de quantas sementes chegaram em cada parcela:
soma.parcela <- tapply(dados[,4],dados[,3],sum)
##Clculo de quantas sementes chegaram em cada ano:
soma.ano <- tapply(dados[,4],dados[,2],sum)
##Clculo da mdia das sementes que chegam por ano no estudo:
media.ano <- round(mean(soma.ano),0)
##Clculo da mdia de sementes que chegaram em cada um dos meses:
feno <- round(tapply(dados[,4],dados[,1],mean),0)
##Instalao e abertura do pacote circular:
install.packages("circular")
require("circular")
##Fiz um vetor de doze nmeros espaados igualmente que sero posicionados radialmente na circunferncia:
angulo <- seq(0,330,by=30)
##Transformei este vetor em valores radianos: 
angulo.rad <- rad(angulo)
##Transformei os dados referentes a mdia de sementes que chegaram por ms (feno) em valores circulares, relacionados com o vetor angulo.rad criado
##anteriormente. Coloquei no sentido anti-horrio, pois no consegui mudar este padro nas funes posteriores: 
feno.c <- circular(rep(angulo.rad,feno),units=c("radians"),rotation="counter")
##Calculei a mdia para obter o vetor que indica a direo das observaes. Este valor vai de 0 (incio na posio 3h) at 2pi(~6.283185):
media <- mean(feno.c)
##Calculei o comprimento do vetor mdio. Quanto mais perto de zero, mais abrangente o perodo fenolgico ao longo do ano, os dados no tem um padro muito
##evidente:
r <- rho.circular(feno.c)
##Testes de Uniformidade. 
##Valores significativos do p-valor indicam a existncia de um padro e menor abrangncia fenolgica: 
Rayleigh.teste <- rayleigh.test(feno.c)
##Valores acima do valor crtico, indicam a existncia de um padro e menor abrangncia fenolgica:
Watson.teste <- watson.test(feno.c,alpha=0.05)
##Plotei os dados em um grfico circular:
plot(feno.c,axes=F,main="Fenologia da Chuva de Sementes")
##Coloquei os meses no eixo:
axis.circular(at=circular(rad(angulo)),labels=meses,units=c("radians"))
##Plotei este diagrama para visualizar como a chegada de sementes se distribui ao longo do ano:
rose.diag(feno.c,bins=12,add=T,axes=F)
##Esta funo plota um vetor na direo mdia dos dados e em um comprimento que mostra o quanto esta direo influencia os dados como um todo(r):
arrows.circular(x=media, shrink=r, col="red",length=0.1)
##Fiz uma lista para que os resultados sejam apresentados no Console:
lista <- list(soma.total,soma.mes,soma.parcela,soma.ano,media.ano,feno,media,r,Rayleigh.teste,Watson.teste)
names(lista) <- c("Total de sementes que chegaram ao longo do estudo","Soma das sementes que chegaram em cada ms","Soma das sementes que chegaram em cada parcela","Soma das sementes que chegaram em cada ano","Mdia das sementes que chegaram por ano no estudo","Mdia de sementes que chegaram em cada um dos meses","Direo mdia dos dados","Comprimento mdio dos dados","Teste de Uniformidade de Rayleigh","Teste de Uniformidade de Watson")
return(lista)
}